home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor1 / tetrisx.src < prev    next >
Text File  |  1991-05-29  |  8KB  |  234 lines

  1. %%HP:T(3)F(.);
  2. @ TETRISX
  3. @ by Jon Loschke
  4. DIR
  5.   INTRO
  6.     \<< PICT PURGE { # 0h # 28h } { # 82h # 28h } LINE { # 0h # 0h } PVIEW
  7. 1 SF TLST OBJ\-> DROP 1 24
  8.       START FLST SWAP GET SWAP GET SWAP PLST 6 RAND * IP 1 + GET 'p' STO
  9. ANIM DROP
  10.       NEXT 1 CF 1 5
  11.       START LINE 100 .1 BEEP
  12.       NEXT PICT { # Ch # 0h } "Brought to you by:" 2 \->GROB REPL PICT
  13. { # 22h # 8h } "Jon Loschke" 2 \->GROB REPL 2 WAIT PLAY
  14.     \>>
  15.   PLAY
  16.     \<< "Enter starting level,\010(0..4, -1 for rewind)" ":Level:" INPUT OBJ\->
  17.       IF DUP 0 <
  18.       THEN DROP r FP RDZ r IP
  19.       ELSE RAND 8 TRNC DUP RDZ OVER + 'r' STO
  20.       END 'v' STO 'b' 'a' STO RAND 7 * IP 1 + 'OBN' STO 1 5 CF CF 0 'PNTS' STO
  21. RUN
  22.     \>>
  23.   CONT.
  24.     \<<
  25.       IF CT SIZE
  26.       THEN 3 SF RUN
  27.       ELSE PLAY
  28.       END
  29.     \>>
  30.   PNTS 155
  31.   HI 2352
  32.   NXT
  33.     \<< 2 FC?C
  34.       \<< 2 SF
  35.       \>> IFT
  36.     \>>
  37.   EXIT
  38.     \<< 440 .1 BEEP
  39.       WHILE KEY
  40.       REPEAT DROP
  41.       END 1 2 CF CF
  42.       IF PNTS HI >
  43.       THEN PNTS DUP 'HI' STO "New High Score" \->TAG 440 .1 BEEP
  44.       ELSE PNTS "Score" \->TAG
  45.       END
  46.     \>>
  47.   r 4.44273096
  48.   v 4
  49.   BONUS
  50.     \<< 0 \-> t
  51.       \<< # F6h NEG
  52.         DO # 100h + # 1002003004005h OVER DUP2 # FA5Fh XFIG # 5h + # FA5Fh
  53. XFIG 1 't' STO+ 880 .005 BEEP
  54.         UNTIL TLIN # 0h \=/
  55.         END DROP PICT { # 31h # 5h } "BONUS" 2 \->GROB NEG REPL PICT { # 37h
  56. # Dh } t 5 v + * \->STR 2 \->GROB NEG REPL 1 t
  57.         START 5 v + ADDP
  58.         NEXT 1 WAIT
  59.       \>>
  60.     \>>
  61.   PSE
  62.     \<< PNTS v l a OBN 5 \->LIST 'CT' STO PICT { # 2Ch # 0h } DUP2 { # 53h
  63. # 3Bh } SUB DUP 'CT' STO+ GXOR KILL
  64.     \>>
  65.   RUN
  66.     \<<
  67.       DO MKSCR
  68.         IF 3 FC?C
  69.         THEN 16 v 2 * + 'l' STO BRIK
  70.         ELSE PICT { # 2Ch # 0h } CT OBJ\-> DROP 'OBN' STO 'a' STO 'l'
  71. STO 'v' STO 'PNTS' STO REPL { } 'CT' STO
  72.         END 0 ADDP PICT { # 5Dh # 10h } l \->STR 1 \->GROB REPL PICT { # 6Ch
  73. # 3Ah } v \->STR 1 \->GROB GXOR
  74.         DO delay OBN 'OB1' STO FLST DUP OBN GET 1 GET # B06h # 0h XFIG
  75. RAND 7 * IP 1 + DUP 'OBN' STO GET 1 DUP 'OB2' STO GET # B06h # A5A5h 2
  76. FS? * XFIG FLST OB1 GET 1 GET # Eh 1 CF PLST DUP SIZE RAND * IP 1 +
  77. GET 'p' STO ANIM 4 v + ADDP DROP PACK MEM DROP
  78.           IF 3 FS?C
  79.           THEN PSE
  80.           END
  81.         UNTIL FULL 5 FS? OR
  82.         END BONUS
  83.       UNTIL 5 FC?C
  84.       END EXIT
  85.     \>>
  86.   CT { }
  87.   b .05
  88.   PLST { # F99Fh # FBDFh # FDBFh # FD9Fh # FFBFh # FB9Fh # FFFFh # 9669h }
  89.   BRIK
  90.     \<< v 8 MIN
  91.       WHILE DUP
  92.       REPEAT 1 4
  93.         START # 0h 10 RAND * IP # F0Bh + # 100h 4 PICK * - # F99Fh XFIG
  94.         NEXT 1 -
  95.       END DROP
  96.     \>>
  97.   l 23
  98.   p # 9669h
  99.   ANIM
  100.     \<< DUP2 p XFIG
  101.       DO
  102.         IF 1 FC?
  103.         THEN RK2 RK2 RK2 RK2
  104.         END DUP2 # 0h XFIG # 100h + DUP2 # 0h + TFIG
  105.         IF # 0h ==
  106.         THEN DUP2 p XFIG
  107.         ELSE # 100h - p XFIG 0
  108.         END
  109.       UNTIL DUP 0 ==
  110.       END
  111.     \>>
  112.   TLST { { # 46h # 2Ah } { # 5Ah # 3Fh } { # 5Ah # 2Ah } { # 46h # 3Fh }
  113. { # 32h # 3Fh } { # 3Ch # 38h } { # 3Ch # 38h } { # 32h # 31h }
  114. { # 32h # 31h } { # 3Ch # 2Ah } # 1h 3 6 # 9h 1 2 # 11h 1 4 # 1Ch 4 4
  115. # 4h 1 4 # Eh 3 6 # 18h 4 6 # 7h 4 1 # 1Bh 4 6 # 2h 1 3 # 1Bh 2 4 # 8h
  116. 1 3 # 15h 1 7 # Eh 2 2 # 7h 4 1 # 1Ch 2 6 # 18h 4 6 # 2h 2 4 # 9h 1 2
  117. # 15h 1 5 # Fh 2 2 # Fh 1 2 # 14h 1 7 # 3h 2 6 }
  118.   SFX
  119.     \<< 440 1760
  120.       FOR i i .01 BEEP 165
  121.       STEP
  122.     \>>
  123.   a .036
  124.   OB1 5
  125.   OB2 1
  126.   OBN 2
  127.   CSTL
  128. GROB 42 64 FD7FD3ECB130154154A66B10B57B55A60E00A42A42AC3400A47A45A06E00A44A4BA66B10EC7EC5ECB1300000000000000000010000000000010000001777C700000011120100000017720300000011128100000077120100000000008200000000004400000000002800000000002800000000004400000000008300000000008200000000008200000000008200000000008300000000204500000000204500000008F0450000000020450400000062290400000032290F100000AF290400000022FF1C000000561416000000531414000008221F14000008A2141A000004271C1A00000297161510000ACA0415100006AA0494200002DA1A4940000CBA2E42500004AA2BD4600004AA2559400004AAAAAF300004CF95B0200004409AA020000C701F9F300004401150400004CF11FFF00004202F3080000220A02080000210404080000EFFFFFFF000039429429100829429429200CFFFFFFFF7004000C70004004000EF0004004000EF0004004000EF0004004000EF000400CFFFFFFFF700
  129.   IPIC
  130. GROB 40 64 0E0000000001100000810187E47E810E401D01100050150F9101501501810E87E40E000000000000FFFFFFFFFF100000000810000000081000000008100000000810000000081000000008100000000810000000081000000008FFFFFFFFFF000000000000000000000CCD1E4ACE04590AAA220C490EEA4E045902AA8204D902AE6E000000000000F700CF70007700CE6000770042400036004E400036004240001400C26000F700CF700000000000F7F7F7CFFFF514D74BA87436174AAD14361448DD74771749ADF577D74BADF7F7F7CFFF0000000000033770000005555000000535700000055510000003571000000000000000000000000000000000000FFF300000033A3000000BAB3000000B2A3000000BAB30000003322000000FFF300000000000000006AA309EAE09A210B2A409A210FE4405A210D2A40AE2109EA4
  131.   MKSCR
  132.     \<< ERASE { # 54h # 3Ch } { # 54h # 0h } OVER LINE { # 2Bh # 3Ch }
  133. DUP ROT LINE { # 2Bh # 0h } LINE PICT { # 0h # 0h } IPIC REPL PICT
  134. { # 59h # 0h } CSTL REPL { # 0h # 0h } PVIEW
  135.     \>>
  136.   RK2
  137.     \<<
  138.       IF KEY
  139.       THEN
  140.         IF { 34 36 35 25 54 26 16 11 } SWAP POS DUP
  141.         THEN {
  142.           \<< # 1h NEG MSIDE
  143.           \>>
  144.           \<< # 1h MSIDE
  145.           \>>
  146.           \<< 1 SF
  147.           \>> ROTF
  148.           \<< CLEAR KILL
  149.           \>> NXT
  150.           \<< 3 SF
  151.           \>>
  152.           \<< OFF
  153.           \>> } SWAP GET EVAL
  154.         ELSE DROP
  155.         END
  156.       END a WAIT
  157.     \>>
  158.   ADDP
  159.     \<< 'PNTS' STO+ PICT { # 5h # Ah } PNTS 2 \->GROB REPL
  160.     \>>
  161.   TFIG  @ by Erik Bryntse; convert with ASC->
  162. "CCD20E310013606DD061B97507142137135818F098BA606FF014713481AF0914
  163. 234E4A208A26060E01691527100E717414381AF2914581AF291321428A26060B
  164. 01691567AFAAF1D122A95118C9D5F522A8520A81819F122A82C1201B56507146
  165. 818F29818F29C9136AF2156090A90B456E002F308200E49BF4BF4BF4AF68AE09
  166. AF0AF2AC48108087340E68084396840E614313216915472007DD071361421648
  167. 08C3CA6"
  168.   XFIG  @ by Erik Bryntse; convert with ASC->
  169. "CCD204410034E7507137143818F8E1358BE60691117E818F328FB97601CE1B56
  170. 507146134152739E1B20F880029916912014313234E4A201428A2606EB016915
  171. 271011741431321428A63E16915271001741431321428A68C1691567AFAAF122
  172. A95118C9AF5BF522A8520A8181D22A82C1201B56507146818F29818F29C91341
  173. 19BF2BF2241542BF616F16F1610D880BEBF4BF4BF4AF68AA60688F208F2D7601
  174. 42164808CE7C9"
  175.   ROTF
  176.     \<< DUP2 # 0h XFIG FLST OB1 GET OB2 1 -
  177.       IF DUP 0 \<=
  178.       THEN DROP DUP SIZE
  179.       END DUP \-> OS2
  180.       \<< GET SWAP DUP2 # 0h + TFIG
  181.         IF # 0h ==
  182.         THEN ROT DROP OS2 'OB2' STO
  183.         ELSE SWAP DROP
  184.         END DUP2 p XFIG
  185.       \>>
  186.     \>>
  187.   delay
  188.     \<< a .001 - DUP
  189.       IF 0 \<=
  190.       THEN DROP .000000001
  191.       END 'a' STO
  192.     \>>
  193.   MSIDE
  194.     \<< \-> CD
  195.       \<< DUP2 # 0h XFIG CD + DUP2 # 0h + TFIG
  196.         IF # 0h \=/
  197.         THEN CD -
  198.         END DUP2 p XFIG
  199.       \>>
  200.     \>>
  201.   FLST { { # 100101102201h # 1101201100h # 200201202101h # 1101201102h
  202. } { # 200201202203h # 2102202302h } { # 1002101102h } {
  203. # 100101102202h # 1101201200h # 100200201202h # 1101201002h } {
  204. # 100101201202h # 1101100200h } { # 102200201202h # 101201202001h
  205. # 100101102200h # 1101201000h } { # 200201101102h # 100101201000h } }
  206.   TLIN
  207.     \<< DUP # 101102103104105h SWAP DUP2 # 0h + TFIG ROT ROT # 5h + TFIG +
  208.     \>>
  209.   PACK
  210.     \<< # D0Ah
  211.       DO TLIN
  212.         IF # 4h ==
  213.         THEN P2
  214.         ELSE # 100h -
  215.         END
  216.       UNTIL DUP # 200h <
  217.       END
  218.       IF l 0 \<=
  219.       THEN 5 SF 'v' INCR DROP
  220.       END DROP
  221.     \>>
  222.   P2
  223.     \<< PICT { # 5Dh # 10h } 'l' DECR
  224.       IF DUP 0 <
  225.       THEN NOT
  226.       END \->STR " " + 1 \->GROB REPL 25 v 2 * + ADDP DUP # F00h AND SRB 4
  227. * 3 + # 28h SWAP 2 \->LIST SFX PICT SWAP { # 55h # 8h } SUB PICT { # 28h
  228. # Ch } ROT REPL
  229.     \>>
  230.   FULL
  231.     \<< # 101102103104105h # 10Ah DUP2 # 0h + TFIG ROT ROT # 5h + TFIG + # 0h >
  232.     \>>
  233. END
  234.